![]() |
![]() |
![]() | |
![]() ![]() ![]() ![]()
╤σ≥σΓ√σ ∩≡ΦδεµσφΦ |
╚±∩εδⁿτεΓαφΦσ Σα≥απ≡α∞∞φ√⌡ ±εΩσ≥εΓ╩αΩ ∞√ ≤µσ πεΓε≡ΦδΦ, Σα≥απ≡α∞∞φ√σ ±εΩσ≥√ φσ πα≡αφ≥Φ≡≤■≥ Σε±≥αΓΩ≤ ∩αΩσ≥εΓ Σαφφ√⌡. ╥σ∞ φσ ∞σφσσ, εφΦ ≡αßε≥α■≥ ß√±≥≡σσ ∩ε≥εΩεΓ√⌡ Φ εßσ±∩σ≈ΦΓα■≥ Γετ∞εµφε±≥ⁿ °Φ≡εΩεΓσ∙α≥σδⁿφεΘ ≡α±±δ√ΩΦ ∩αΩσ≥εΓ Σαφφ√⌡ εΣφεΓ≡σ∞σφφε Γ±σ∞ ≤τδα∞ ±σ≥Φ. ╧ε±δσΣφ Γετ∞εµφε±≥ⁿ Φ±∩εδⁿτ≤σ≥± φσ ε≈σφⁿ °Φ≡εΩε Γ ±σ≥Φ Internet, εΣφαΩε Γ Ωε≡∩ε≡α≥ΦΓφεΘ ±σ≥Φ Intranet Γ√ Γ∩εδφσ ∞εµσ≥σ σΘ Γε±∩εδⁿτεΓα≥ⁿ± . ─δ ≡αßε≥√ ± Σα≥απ≡α∞∞φ√∞Φ ±εΩσ≥α∞Φ ∩≡ΦδεµσφΦσ Σεδµφε ±ετΣα≥ⁿ ±εΩσ≥ φα ßατσ Ωδα±±α DatagramSocket, α ≥αΩµσ ∩εΣπε≥εΓΦ≥ⁿ εß·σΩ≥ Ωδα±±α DatagramPacket, Γ Ωε≥ε≡√Θ ß≤Σσ≥ τα∩Φ±αφ ∩≡Φφ ≥√Θ ε≥ ∩α≡≥φσ≡α ∩ε ±σ≥Φ ßδεΩ Σαφφ√⌡. ╩αφαδ, α ≥αΩµσ Γ⌡εΣφ√σ Φ Γ√⌡εΣφ√σ ∩ε≥εΩΦ ±ετΣαΓα≥ⁿ φσ φ≤µφε. ─αφφ√σ ∩σ≡σΣα■≥± Φ ∩≡ΦφΦ∞α■≥± ∞σ≥εΣα∞Φ send Φ receive, ε∩≡σΣσδσφφ√∞Φ Γ Ωδα±±σ DatagramSocket. ╩δα±± DatagramSocket╨α±±∞ε≥≡Φ∞ Ωεφ±≥≡≤Ω≥ε≡√ Φ ∞σ≥εΣ√ Ωδα±±α DatagramSocket, ∩≡σΣφατφα≈σφφεπε Σδ ±ετΣαφΦ Φ Φ±∩εδⁿτεΓαφΦ Σα≥απ≡α∞∞φ√⌡ ±εΩσ≥εΓ. ┬ Ωδα±±σ DatagramSocket ε∩≡σΣσδσφ√ ΣΓα Ωεφ±≥≡≤Ω≥ε≡α, ∩≡ε≥ε≥Φ∩√ Ωε≥ε≡√⌡ ∩≡σΣ±≥αΓδσφ√ φΦµσ: public DatagramSocket(int port); public DatagramSocket(); ╧σ≡Γ√Θ Φτ ²≥Φ⌡ Ωεφ±≥≡≤Ω≥ε≡εΓ ∩ετΓεδ σ≥ ε∩≡σΣσδΦ≥ⁿ ∩ε≡≥ Σδ ±εΩσ≥α, Γ≥ε≡εΘ ∩≡σΣ∩εδαπασ≥ Φ±∩εδⁿτεΓαφΦσ δ■ßεπε ±ΓεßεΣφεπε ∩ε≡≥α. ╬ß√≈φε ±σ≡Γσ≡φ√σ ∩≡ΦδεµσφΦ ≡αßε≥α■≥ ± Φ±∩εδⁿτεΓαφΦσ∞ ΩαΩεπε-≥ε τα≡αφσσ ε∩≡σΣσδσφφεπε ∩ε≡≥α, φε∞σ≡ Ωε≥ε≡επε ΦτΓσ±≥σφ ΩδΦσφ≥±ΩΦ∞ ∩≡ΦδεµσφΦ ∞. ╧ε²≥ε∞≤ Σδ ±σ≡Γσ≡φ√⌡ ∩≡ΦδεµσφΦΘ ßεδⁿ°σ ∩εΣ⌡εΣΦ≥ ∩σ≡Γ√Θ Φτ ∩≡ΦΓσΣσφφ√⌡ Γ√°σ Ωεφ±≥≡≤Ω≥ε≡εΓ. ╩δΦσφ≥±ΩΦσ ∩≡ΦδεµσφΦ , φα∩≡ε≥ΦΓ, ≈α±≥ε ∩≡Φ∞σφ ■≥ δ■ß√σ ±ΓεßεΣφ√σ φα δεΩαδⁿφε∞ ≤τδσ ∩ε≡≥√, ∩ε²≥ε∞≤ Σδ φΦ⌡ πεΣΦ≥± Ωεφ±≥≡≤Ω≥ε≡ ßστ ∩α≡α∞σ≥≡εΓ. ╩±≥α≥Φ, ± ∩ε∞ε∙ⁿ■ ∞σ≥εΣα getLocalPort ∩≡ΦδεµσφΦσ Γ±σπΣα ∞εµσ≥ ≤τφα≥ⁿ φε∞σ≡ ∩ε≡≥α, ταΩ≡σ∩δσφφεπε τα Σαφφ√∞ ±εΩσ≥ε∞: public int getLocalPort(); ╧≡Φσ∞ Φ ∩σ≡σΣα≈α Σαφφ√⌡ φα Σα≥απ≡α∞∞φε∞ ±εΩσ≥σ Γ√∩εδφ σ≥± ± ∩ε∞ε∙ⁿ■ ∞σ≥εΣεΓ receive Φ send, ±εε≥Γσ≥±≥Γσφφε: public void receive(DatagramPacket p); public void send(DatagramPacket p); ┬ Ωα≈σ±≥Γσ ∩α≡α∞σ≥≡α ²≥Φ∞ ∞σ≥εΣα∞ ∩σ≡σΣασ≥± ±±√δΩα φα ∩αΩσ≥ Σαφφ√⌡ (±εε≥Γσ≥±≥Γσφφε, ∩≡ΦφΦ∞ασ∞√Θ Φ ∩σ≡σΣαΓασ∞√Θ), ε∩≡σΣσδσφφ√Θ ΩαΩ εß·σΩ≥ Ωδα±±α DatagramPacket. ▌≥ε≥ Ωδα±± ß≤Σσ≥ ≡α±±∞ε≥≡σφ ∩ετµσ. ┼∙σ εΣΦφ ∞σ≥εΣ Γ Ωδα±±σ DatagramSocket, Ωε≥ε≡√∞ Γ√ ß≤Σσ≥σ ∩εδⁿτεΓα≥ⁿ± , ²≥ε ∞σ≥εΣ close, ∩≡σΣφατφα≈σφφ√Θ Σδ ταΩ≡√≥Φ ±εΩσ≥α: public void close(); ═α∩ε∞φΦ∞, ≈≥ε ±ßε≡Ωα ∞≤±ε≡α Γ Java Γ√∩εδφ σ≥± ≥εδⁿΩε Σδ εß·σΩ≥εΓ, φα⌡εΣ ∙Φ⌡± Γ ε∩σ≡α≥ΦΓφεΘ ∩α∞ ≥Φ. ╥αΩΦσ εß·σΩ≥√, ΩαΩ ∩ε≥εΩΦ Φ ±εΩσ≥√, Γ√ Σεδµφ√ ταΩ≡√Γα≥ⁿ ∩ε±δσ Φ±∩εδⁿτεΓαφΦ ±α∞ε±≥ε ≥σδⁿφε. ╩δα±± DatagramPacket╧σ≡σΣ ≥σ∞ ΩαΩ ∩≡ΦφΦ∞α≥ⁿ ΦδΦ ∩σ≡σΣαΓα≥ⁿ Σαφφ√σ ± Φ±∩εδⁿτεΓαφΦσ∞ ∞σ≥εΣεΓ receive Φ send Γ√ Σεδµφ√ ∩εΣπε≥εΓΦ≥ⁿ εß·σΩ≥√ Ωδα±±α DatagramPacket. ╠σ≥εΣ receive τα∩Φ°σ≥ Γ ≥αΩεΘ εß·σΩ≥ ∩≡Φφ ≥√σ Σαφφ√σ, α ∞σ≥εΣ send - ∩σ≡σ°δσ≥ Σαφφ√σ Φτ εß·σΩ≥α Ωδα±±α DatagramPacket ≤τδ≤, αΣ≡σ± Ωε≥ε≡επε ≤Ωαταφ Γ ∩αΩσ≥σ. ╧εΣπε≥εΓΩα εß·σΩ≥α Ωδα±±α DatagramPacket Σδ ∩≡Φσ∞α ∩αΩσ≥εΓ Γ√∩εδφ σ≥± ± ∩ε∞ε∙ⁿ■ ±δσΣ≤■∙σπε Ωεφ±≥≡≤Ω≥ε≡α: public DatagramPacket(byte ibuf[], int ilength); ▌≥ε∞≤ Ωεφ±≥≡≤Ω≥ε≡≤ ∩σ≡σΣασ≥± ±±√δΩα φα ∞α±±ΦΓ ibuf, Γ Ωε≥ε≡√Θ φ≤µφε ß≤Σσ≥ τα∩Φ±α≥ⁿ Σαφφ√σ, Φ ≡ατ∞σ≡ ²≥επε ∞α±±ΦΓα ilength. ┼±δΦ Γα∞ φ≤µφε ∩εΣπε≥εΓΦ≥ⁿ ∩αΩσ≥ Σδ ∩σ≡σΣα≈Φ, Γε±∩εδⁿτ≤Θ≥σ±ⁿ Ωεφ±≥≡≤Ω≥ε≡ε∞, Ωε≥ε≡√Θ Σε∩εδφΦ≥σδⁿφε ∩ετΓεδ σ≥ ταΣα≥ⁿ αΣ≡σ± IP iaddr Φ φε∞σ≡ ∩ε≡≥α iport ≤τδα φατφα≈σφΦ : public DatagramPacket(byte ibuf[], int ilength, InetAddress iaddr, int iport); ╥αΩΦ∞ εß≡ατε∞, Φφ⌠ε≡∞α÷Φ ε ≥ε∞, Γ ΩαΩεΘ ≤τσδ Φ φα ΩαΩεΘ ∩ε≡≥ φσεß⌡εΣΦ∞ε Σε±≥αΓΦ≥ⁿ ∩αΩσ≥ Σαφφ√⌡, ⌡≡αφΦ≥± φσ Γ ±εΩσ≥σ, α Γ ∩αΩσ≥σ, ≥ε σ±≥ⁿ Γ εß·σΩ≥σ Ωδα±±α DatagramPacket. ╧ε∞Φ∞ε ≥εδⁿΩε ≈≥ε ε∩Φ±αφφ√⌡ Ωεφ±≥≡≤Ω≥ε≡εΓ, Γ Ωδα±±σ DatagramPacket ε∩≡σΣσδσφ√ ≈σ≥√≡σ ∞σ≥εΣα, ∩ετΓεδ ■∙Φσ ∩εδ≤≈Φ≥ⁿ Σαφφ√σ Φ Φφ⌠ε≡∞α÷Φ■ εß αΣ≡σ±σ ≤τδα, Φτ Ωε≥ε≡επε ∩≡Φ°σδ ∩αΩσ≥, ΦδΦ Σδ Ωε≥ε≡επε ∩≡σΣφατφα≈σφ ∩αΩσ≥. ╠σ≥εΣ getData ΓετΓ≡α∙ασ≥ ±±√δΩ≤ φα ∞α±±ΦΓ Σαφφ√⌡ ∩αΩσ≥α: public byte[] getData(); ╨ατ∞σ≡ ∩αΩσ≥α, Σαφφ√σ Φτ Ωε≥ε≡επε ⌡≡αφ ≥± Γ ²≥ε∞ ∞α±±ΦΓσ, δσπΩε ε∩≡σΣσδΦ≥ⁿ ± ∩ε∞ε∙ⁿ■ ∞σ≥εΣα getLength: public int getLength(); ╠σ≥εΣ√ getAddress Φ getPort ∩ετΓεδ ■≥ ε∩≡σΣσδΦ≥ⁿ αΣ≡σ± Φ φε∞σ≡ ∩ε≡≥α ≤τδα, ε≥Ω≤Σα ∩≡Φ°σδ ∩αΩσ≥, ΦδΦ ≤τδα, Σδ Ωε≥ε≡επε ∩≡σΣφατφα≈σφ ∩αΩσ≥: public InetAddress getAddress(); public int getPort(); ┼±δΦ Γ√ ±ετΣασ≥σ ΩδΦσφ≥-±σ≡Γσ≡φ≤■ ±Φ±≥σ∞≤, Γ Ωε≥ε≡εΘ ±σ≡Γσ≡ Φ∞σσ≥ τα≡αφσσ ΦτΓσ±≥φ√Θ αΣ≡σ± Φ φε∞σ≡ ∩ε≡≥α, α ΩδΦσφ≥√ - ∩≡εΦτΓεδⁿφ√σ αΣ≡σ±α Φ ≡ατδΦ≈φ√σ φε∞σ≡α ∩ε≡≥εΓ, ≥ε ∩ε±δσ ∩εδ≤≈σφΦ ∩αΩσ≥α ε≥ ΩδΦσφ≥α ±σ≡Γσ≡ ∞εµσ≥ ε∩≡σΣσδΦ≥ⁿ ± ∩ε∞ε∙ⁿ■ ∞σ≥εΣεΓ getAddress Φ getPort αΣ≡σ± ΩδΦσφ≥α Σδ ≤±≥αφεΓδσφΦ ± φΦ∞ ±Γ τΦ. ┼±δΦ µσ αΣ≡σ± ±σ≡Γσ≡α φσΦτΓσ±≥σφ, ΩδΦσφ≥ ∞εµσ≥ ∩ε±√δα≥ⁿ °Φ≡εΩεΓσ∙α≥σδⁿφ√σ ∩αΩσ≥√, ≤ΩαταΓ Γ εß·σΩ≥σ Ωδα±±α DatagramPacket αΣ≡σ± ±σ≥Φ. ╥αΩα ∞σ≥εΣΦΩα εß√≈φε Φ±∩εδⁿτ≤σ≥± Γ δεΩαδⁿφ√⌡ ±σ≥ ⌡. ╩αΩ ≤Ωατα≥ⁿ αΣ≡σ± ±σ≥Φ? ═α∩ε∞φΦ∞, ≈≥ε αΣ≡σ± IP ±ε±≥εΦ≥ Φτ ΣΓ≤⌡ ≈α±≥σΘ - αΣ≡σ±α ±σ≥Φ Φ αΣ≡σ±α ≤τδα. ─δ ≡ατΣσδσφΦ Ωε∞∩εφσφ≥ 32-≡ατ≡ Σφεπε αΣ≡σ±α IP Φ±∩εδⁿτ≤σ≥± 32-≡ατ≡ Σφα ∞α±Ωα, Γ Ωε≥ε≡εΘ ßΦ≥α∞ αΣ≡σ±α ±σ≥Φ ±εε≥Γσ≥±≥Γ≤■≥ σΣΦφΦ÷√, α ßΦ≥α∞ αΣ≡σ±α ≤τδα - φ≤δΦ. ═α∩≡Φ∞σ≡, αΣ≡σ± ≤τδα ∞εµσ≥ ß√≥ⁿ ≤Ωαταφ ΩαΩ 193.24.111.2. ╚±⌡εΣ Φτ τφα≈σφΦ ±≥α≡°σπε ßαΘ≥α αΣ≡σ±α, ²≥ε ±σ≥ⁿ Ωδα±±α ╤, Σδ Ωε≥ε≡εΘ ∩ε ≤∞εδ≈αφΦ■ Φ±∩εδⁿτ≤σ≥± ∞α±Ωα 255.255.255.0. ╤δσΣεΓα≥σδⁿφε, αΣ≡σ± ±σ≥Φ ß≤Σσ≥ ≥αΩεΘ: 193.24.111.0. |